package leetcode; /**
 * description:
 * author:张腾
 * date:2021-07-03
 */

/**
 * 斐波那契数，通常用F(n) 表示，形成的序列称为 斐波那契数列 。该数列由0 和 1 开始，后面的每一项数字都是前面两项数字的和。也就是：
 *
 * F(0) = 0，F(1)= 1
 * F(n) = F(n - 1) + F(n - 2)，其中 n > 1
 * 给你 n ，请计算 F(n) 。
 */
public class leetcode509 {
    public int fib(int n) {
        if (n==0) return 0;
        if (n==1) return 1;
//        int[] dp = new int[n+1];
//        dp[0]=0;dp[1]=1;
        int pre1 = 0;int pre2 = 1;
        int cur=1;
        for (int i = 2; i < n+1; i++) {
//            dp[i] = dp[i-2]+dp[i-1];
            cur = pre1+pre2;
            pre1 = pre2;
            pre2 = cur;
        }
        return cur;
    }
}
